/*
占位符

https://golang.google.cn/pkg/fmt/
*/
package main

import "fmt"

type myPrint struct {
	a int
	b string
}

func main() {
	p := myPrint{a: 1, b: "11"}
	num := 215
	b := true
	f := 12345.789
	str := "hello你好"
	c := '0'

	// 变量地址
	fmt.Printf("%p %p  \n", &p, &num)

	// {1 11} {a:1 b:11} main.myPrint{a:1, b:"11"}
	fmt.Printf("%v %+v %#v  \n", p, p, p)
	// 100 100 100
	fmt.Printf("%v %+v %#v \n", num, num, num)
	// main.myPrint
	fmt.Printf("%T  \n", p)
	// true
	fmt.Printf("%t  \n", b)
	// 2进制 10机制 8进制 16进制小写 16进制大写
	fmt.Printf("%b %d %o %x %X \n", num, num, num, num, num)
	// 科学计数法 浮点数 %g(根据%f %e选择更紧凑的输出)
	fmt.Printf("%e %3.2f %g \n", f, f, f)

	// 字符 Unicode格式 %q带"" %s不带""
	fmt.Printf("%c %U %q %s \n", c, c, str, str)
}
